﻿using System;
using MaxStoreErp.Core.BaseClasses;

namespace MaxStoreErp.Core.Interfaces
{
    /// <summary>
    /// Интерфейс менеджера документов
    /// </summary>
    public interface IDocumentManager
    {
        /// <summary>
        /// Производит навигацию к указанному типу документа
        /// </summary>
        /// <typeparam name="T">Тип документа</typeparam>
        void NavigateTo<T>(Action onNavigation = null) where T : IDocument, new();

        /// <summary>
        /// Производит навигацию к указанному представлению документа
        /// </summary>
        /// <param name="view">Представление документа</param>
        void NavigateTo(IView view, Action onNavigation = null);

        /// <summary>
        /// Производит навигацию на предыдущее представление
        /// </summary>
        void Back();

        /// <summary>
        /// Производит навигацию к главному меню приложения
        /// </summary>
        void NavigateToMenu();

        /// <summary>
        /// Производит навигацию к форме авторизации пользователя
        /// </summary>
        void NavigateToLogin();
    }
}
